home *** CD-ROM | disk | FTP | other *** search
/ Alles Voor Internet / Tout Pour Internet / alles voor internet.iso / MacInternet™ / Unix / maclayersunixend1.30.shar / 1.30 / macbput.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-06-16  |  3.1 KB  |  86 lines

  1. /**
  2. ***                Copyright (C) 1991 by David W. Trissel
  3. ***
  4. ***                  Not derived from licensed software.
  5. ***
  6. *** Permission is granted to freely use, copy, modify, and redistribute
  7. *** this software, provided that no attempt is made to gain profit from it,
  8. *** the author is not construed to be liable for any results of using the
  9. *** software, alterations are clearly marked as such, and this notice is
  10. *** not modified.
  11. ***
  12.  
  13. #define RECORDBYTES 132                /* complete XMODEM block length */
  14. #define DATABYTES 128                /* data portion of block length */
  15. #define NAMEBYTES 63                /* max file name size in info block */
  16.  
  17. #define RETRIES 10                    /* max number of error retries */
  18. #define ACKTIMO 10                    /* seconds timeout waiting for ACK */
  19. #define FLUSHTIMO 2                    /* Flush timeout when invalid response
  20.                                     ** recieved, must be very short. Note:
  21.                                     ** a one (1) may not work because timer
  22.                                     ** will trip between 0 and 1 sec. */
  23.  
  24. #define MAXRECNO 0xff                /* top modulo record number */
  25. #define BYTEMASK 0xff                /* single byte mask for integers */
  26.  
  27. #define TMO -1                        /* timeout function return value */
  28. #define SOH    0x01                    /* ANSI Start Of Header */
  29. #define EOT 0x04                    /* ANSI End Of Transmission */
  30. #define ACK 0x06                    /* ANSI positive ACKnowledge */
  31. #define NAK 0x15                    /* ANSI Negative AcKnowledge */
  32. #define CAN 0x18                    /* ANSI CANcel */
  33. #define ESC 0x1b                    /* ANSI ESCape */
  34.  
  35.     /* Definition of the 128 byte Mac file info record */
  36. #define H_VEROFF    0                /* Mac OS only supports version zero */
  37. #define H_NLENOFF    1                /* Mac file name length (1..63) */
  38. #define H_NAMEOFF    2                /* Mac file name */
  39.  /* 65 <-> 80 is the FInfo structure */
  40. #define H_TYPEOFF    65                /* file type */
  41. #define H_AUTHOFF    69                /* file application owner */
  42. #define H_FDRFLG    73                /* first finder flag */
  43. #define H_ZERO1        74                /* (should be zero) */
  44. #define H_WVRT        75                /* folder vertical position */
  45. #define H_WHRZ        77                /* folder horizontal position */
  46. #define H_FOLDRID    79                /* folder ID */
  47. #define H_PROT        81                /* file protected bit (0x01) */
  48. #define H_ZERO2        82                /* (should be zero) */
  49. #define H_DLENOFF    83                /* data fork size */
  50. #define H_RLENOFF    87                /* resource fork size */
  51. #define H_CTIMOFF    91                /* file creation time */
  52. #define H_MTIMOFF    95                /* file last time modified time */
  53. #define H_FDRINFO    99                /* Finder word */
  54. #define H_FDRFLG2    101                /* second Finder flags */
  55. #define H_ZERO3        102                /* 15 bytes (should be zero) */
  56. #define H_UNPKSZ    116                /* hint for unpacking size (unused) */
  57. #define H_HDR2        120                /* info header size (unused) */
  58. #define H_UPBIIVER    122                /* highest MacBin II version (unused) */
  59. #define H_MINBIIVER    123                /* minimum MacBin II version (unused) */
  60. #define H_CRC        124                /* MacBin II CRC (unused) */
  61.  
  62. enum {TEXT, DATA, RSRC, FULL} mode;
  63.  
  64. #define LOGLO    (Log > 1)
  65. #define LOGMED    (Log > 2)
  66. #define LOGHI    (Log > 3)
  67.  
  68. /* C library routines */
  69. extern char    *getenv();
  70.  
  71. struct Macheader
  72.   { char m_name[NAMEBYTES+1];
  73.     char m_type[4];
  74.     char m_author[4];
  75.     long m_datalen;
  76.     long m_rsrclen;
  77.     long m_createtime;
  78.     long m_modifytime;
  79.     } Mh;
  80.  
  81. struct Filenames
  82.   { char f_info[256];
  83.     char f_data[256];
  84.     char f_rsrc[256];
  85.     } Files;
  86.